Mysql 身份认证绕过漏洞(CVE-2012-2122)
当连接MariaDB/MySQL时,输入的密码会与期望的正确密码比较,由于不正确的处理,会导致即便是memcmp()返回一个非零值,也会使MySQL认为两个密码是相同的。也就是说只要知道用户名,不断尝试就能够直接登入SQL数据库。
受影响版本:
- 来自 5.1.62、5.2.12、5.3.6、5.5.23 的 MariaDB 版本不是。
- 5.1.63、5.5.24、5.6.6 的 MySQL 版本不是。
参考链接:
- http://www.freebuf.com/vuls/3815.html
- https://blog.rapid7.com/2012/06/11/cve-2012-2122-a-tragically-comedic-security-flaw-in-mysql/
漏洞复现
环境启动后,将启动一个Mysql服务(版本:5.5.23),监听3306端口,通过正常的Mysql客户端,可以直接登录的,正确root密码是123456。
在不知道我们环境正确密码的情况下,在bash下运行如下命令,在一定数量尝试后便可成功登录:
1 | for i in `seq 1 1000`; do mysql -uroot -pwrong -h 192.168.44.132 -P3306 ; done |
更多测试和利用方法,见参考链接。